This technology pertains in wireless communications networks, and in particular, to wireless communications networks employing network coding.
A communication system transmits information from an information source to a destination over a communication channel. In wireless communication systems, noise and fading lead to the unreliability of the transmission. One way to overcome this unreliability is through the use of intermediate nodes or relay nodes that help the source to transmit its information to the intended destination. Communication systems using relaying operate under a fundamental principle: the information sent from one source, O1, to a destination, D, is transported independently from other information sent from another source, O2, to the same destination, D. Routers, repeaters, or relays forward the data to the destination.
Network Coding (NC) is a new area of networking in which data is manipulated inside the network to improve throughput, delay, and/or robustness. In particular, network coding allows nodes to combine several input packets into one or several output packets. At intermediate nodes, some (linear) coding may be performed on the available packets, and the resulting encoded packet can be broadcasted to different recipients simultaneously instead of transmitting each packet separately.
The area of network coding was first introduced by R. Ahlswede, N. Cai, S.-Y. R. Li, and R. W. Yeung; Network information flow; IEEE Trans. Info. Theory; July 2000, incorporated herein by reference in its entirety. Ahlswede et al present network coding as a method that allows intermediate nodes (e.g., relays) to perform some processing (coding) on the packets they receive in exchange for throughput gain.
In wireless communications, network coding is generally divided into two generic schemes: analog and digital. Analog network coding refers to coding at the signal level. The analog signals add up in the air at the node performing the network coding operation through simultaneous transmissions, i.e., by letting two signals interfere with each other intentionally. Digital network coding refers to coding at the bit level (whether coded or uncoded bits) where the node performing the network coding operation will exclusive OR [XOR] (or alternatively perform other types of encoding on) the bits of the packets to be encoded. By stating herein that digital network-coding (DNC) operates at the bit level includes bit level operations (whether coded or uncoded bits (e.g. FEC) and/or before/after puncturing or rate matching) encompasses operations such as operations on bits (e.g., prior to any channel coding), coded bits, or codewords (e.g., after channel coding), or even modulated symbols.
A network-coded signal may be transmitted to several intended recipients. Consequently, the transmitter needs to make sure that all intended recipients can correctly receive the network-coded signal. This means that the transmission is constrained by the link from the transmitter (i.e., the node transmitting the network-coded signal) to the weakest receiver. This can adversely affect the system performance. Possible approaches try to alleviate this shortcoming include using power control or choosing which users should be grouped together to perform the network coding operation. See, for example, WO2009/126079, published 2009 Oct. 15 and entitled User Grouping Strategies for Network Coding, incorporated herein by reference. Most approaches focus on applying network coding whenever the possibility arises and do not distinguish between which type of network coding should be used, or even whether network coding should be used at all. Another factor that affects system performance is the type of network coding used (i.e., analog or digital).
The technology described herein relates to a method and apparatus for communicating information between two or more network nodes so as to adaptively select a suitable transmission mode based on at least one variable transmission parameter.